[INFO] cloning repository https://github.com/arittr/glorp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arittr/glorp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farittr%2Fglorp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farittr%2Fglorp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 702fa5c012e06f6ddf79c1e26c6fb7872c43b7f4
[INFO] testing arittr/glorp against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farittr%2Fglorp" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/arittr/glorp
[INFO] finished tweaking git repo https://github.com/arittr/glorp
[INFO] tweaked toml for git repo https://github.com/arittr/glorp written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/arittr/glorp on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/arittr/glorp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_home v0.1.0
[INFO] [stderr]   Downloaded xterm-query v0.5.2
[INFO] [stderr]   Downloaded terminal-light v1.8.0
[INFO] [stderr]   Downloaded which v7.0.3
[INFO] [stderr]   Downloaded predicates-core v1.0.10
[INFO] [stderr]   Downloaded instability v0.3.12
[INFO] [stderr]   Downloaded unarray v0.1.4
[INFO] [stderr]   Downloaded simple-easing v1.0.2
[INFO] [stderr]   Downloaded rand_pcg v0.3.1
[INFO] [stderr]   Downloaded predicates-tree v1.0.13
[INFO] [stderr]   Downloaded rand_xorshift v0.4.0
[INFO] [stderr]   Downloaded rusty-fork v0.3.1
[INFO] [stderr]   Downloaded assert_cmd v2.2.1
[INFO] [stderr]   Downloaded convert_case v0.10.0
[INFO] [stderr]   Downloaded predicates v3.1.4
[INFO] [stderr]   Downloaded anpa v0.10.0
[INFO] [stderr]   Downloaded grid v1.0.1
[INFO] [stderr]   Downloaded console v0.16.3
[INFO] [stderr]   Downloaded bon v3.9.1
[INFO] [stderr]   Downloaded bon-macros v3.9.1
[INFO] [stderr]   Downloaded derive_more v2.1.1
[INFO] [stderr]   Downloaded derive_more-impl v2.1.1
[INFO] [stderr]   Downloaded insta v1.47.2
[INFO] [stderr]   Downloaded coolor v1.1.0
[INFO] [stderr]   Downloaded taffy v0.10.1
[INFO] [stderr]   Downloaded tachyonfx v0.18.0
[INFO] [stderr]   Downloaded proptest v1.11.0
[INFO] [stderr]   Downloaded winsafe v0.0.19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a047ba644d33868ce0d22d1ebac8ec92dbb0cb14b04c95e6bf8a6839260b5243
[INFO] running `Command { std: "docker" "start" "-a" "a047ba644d33868ce0d22d1ebac8ec92dbb0cb14b04c95e6bf8a6839260b5243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a047ba644d33868ce0d22d1ebac8ec92dbb0cb14b04c95e6bf8a6839260b5243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a047ba644d33868ce0d22d1ebac8ec92dbb0cb14b04c95e6bf8a6839260b5243", kill_on_drop: false }`
[INFO] [stdout] a047ba644d33868ce0d22d1ebac8ec92dbb0cb14b04c95e6bf8a6839260b5243
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eee19fb017f1a8359d83088d76163eba80d1a57f086deb5b1ec1ce85487be5b5
[INFO] running `Command { std: "docker" "start" "-a" "eee19fb017f1a8359d83088d76163eba80d1a57f086deb5b1ec1ce85487be5b5", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling anpa v0.10.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling coolor v1.1.0
[INFO] [stderr]    Compiling simple-easing v1.0.2
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling taffy v0.10.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling rand_pcg v0.3.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling xterm-query v0.5.2
[INFO] [stderr]    Compiling terminal-light v1.8.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling bon-macros v3.9.1
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling bon v3.9.1
[INFO] [stderr]    Compiling tachyonfx v0.18.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling glorp v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.36s
[INFO] running `Command { std: "docker" "inspect" "eee19fb017f1a8359d83088d76163eba80d1a57f086deb5b1ec1ce85487be5b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eee19fb017f1a8359d83088d76163eba80d1a57f086deb5b1ec1ce85487be5b5", kill_on_drop: false }`
[INFO] [stdout] eee19fb017f1a8359d83088d76163eba80d1a57f086deb5b1ec1ce85487be5b5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d3d9f2fddb084c8765d848b7e9925120e832416aa6ada014adeef2cf2580af88
[INFO] running `Command { std: "docker" "start" "-a" "d3d9f2fddb084c8765d848b7e9925120e832416aa6ada014adeef2cf2580af88", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling assert_cmd v2.2.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling insta v1.47.2
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling glorp v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 31.71s
[INFO] running `Command { std: "docker" "inspect" "d3d9f2fddb084c8765d848b7e9925120e832416aa6ada014adeef2cf2580af88", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d3d9f2fddb084c8765d848b7e9925120e832416aa6ada014adeef2cf2580af88", kill_on_drop: false }`
[INFO] [stdout] d3d9f2fddb084c8765d848b7e9925120e832416aa6ada014adeef2cf2580af88
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 199701bafc7db3f2960ed41c17d83e2d5fb420312a46b6c25c140485caa6c836
[INFO] running `Command { std: "docker" "start" "-a" "199701bafc7db3f2960ed41c17d83e2d5fb420312a46b6c25c140485caa6c836", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/glorp-2616cb4aaf8e0fa0)
[INFO] [stdout] 
[INFO] [stdout] running 415 tests
[INFO] [stdout] test commands::watch::tests::recent_activity_tokens_uses_bucket_at_not_observed_at ... ok
[INFO] [stdout] test dev_preview::export::tests::html_export_reverses_default_colors ... ok
[INFO] [stdout] test dev_preview::export::tests::html_export_reverses_foreground_and_background_colors ... ok
[INFO] [stdout] test dev_preview::export::tests::html_export_escapes_cell_content ... ok
[INFO] [stdout] test dev_preview::export::tests::html_export_spans_wide_cells_and_skips_continuations ... ok
[INFO] [stdout] test dev_preview::frame::tests::frame_from_buffer_exports_style_information ... ok
[INFO] [stdout] test dev_preview::frame::tests::frame_from_buffer_preserves_dimensions_and_coordinates ... ok
[INFO] [stdout] test dev_preview::frame::tests::html_escape_handles_markup_and_quotes ... ok
[INFO] [stdout] test dev_preview::export::tests::text_export_skips_wide_cell_continuations ... ok
[INFO] [stdout] test dev_preview::export::tests::manifest_has_versioned_producer_and_artifact_types ... ok
[INFO] [stdout] test dev_preview::export::tests::html_export_combines_text_decoration_modifiers ... ok
[INFO] [stdout] test dev_preview::export::tests::review_markdown_lists_scenario_prompts_from_manifest ... ok
[INFO] [stdout] test dev_preview::export::tests::text_export_preserves_terminal_geometry ... ok
[INFO] [stdout] test dev_preview::output::tests::commit_output_replaces_owned_directory ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_allows_missing_directory ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_allows_empty_directory ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_allows_owned_preview_directory ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_refuses_preview_directory_with_wrong_producer ... ok
[INFO] [stdout] test dev_preview::habitat_props::tests::catalog_frame_lists_every_habitat_prop ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_refuses_regular_file ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_refuses_symlink ... ok
[INFO] [stdout] test dev_preview::export::tests::html_export_uses_fixed_cell_grid ... ok
[INFO] [stdout] test commands::watch::tests::build_recent_events_interleaves_narrative_and_usage_by_timestamp ... ok
[INFO] [stdout] test dev_preview::pets::tests::pet_matrix_uses_expected_species_stage_count ... ok
[INFO] [stdout] test dev_preview::scenarios::tests::pet_matrix_metadata_lists_species_and_stages ... ok
[INFO] [stdout] test dev_preview::scenarios::tests::scenario_metadata_includes_review_inputs_and_files ... ok
[INFO] [stdout] test dev_preview::scenarios::tests::preview_render_context_uses_fixed_watch_clock ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_keeps_existing_staging_dir_for_same_final_dir ... ok
[INFO] [stdout] test dev_preview::output::tests::prepare_output_refuses_non_preview_directory ... ok
[INFO] [stdout] test game::catchup::tests::bucket_count_is_six_to_twelve ... ok
[INFO] [stdout] test commands::watch::tests::build_watch_view_model_bio_sub_day_age ... ok
[INFO] [stdout] test game::catchup::tests::each_bucket_at_or_below_daily_cap ... ok
[INFO] [stdout] test commands::watch::tests::build_watch_view_model_progress_at_s6_is_max_stage ... ok
[INFO] [stdout] test game::catchup::tests::sum_at_or_below_input ... ok
[INFO] [stdout] test commands::watch::tests::build_watch_view_model_populates_progress_view ... ok
[INFO] [stdout] test game::habitat::tests::cloud_and_vine_are_behind_pet_layer ... ok
[INFO] [stdout] test game::habitat::tests::floor_props_are_behind_pet_layer ... ok
[INFO] [stdout] test game::habitat::tests::lantern_and_signal_lamp_render_in_warm_red_to_orange ... ok
[INFO] [stdout] test game::habitat::tests::moss_tuft_and_planter_render_in_green ... ok
[INFO] [stdout] test game::habitat::tests::non_floor_props_default_to_background_pet_layer ... ok
[INFO] [stdout] test game::habitat::tests::props_have_distinct_colors ... ok
[INFO] [stdout] test game::habitat::tests::treasure_chest_renders_in_warm_amber ... ok
[INFO] [stdout] test game::evolution::tests::xp_never_decreases_for_non_negative_delta ... ok
[INFO] [stdout] test game::runtime::tests::clock_skewed_previous_poll_is_backfill_not_live_burst ... ok
[INFO] [stdout] test game::evolution::tests::final_stage_matches_start_plus_transitions ... ok
[INFO] [stdout] test game::evolution::tests::stage_transitions_are_strictly_increasing ... ok
[INFO] [stdout] test dev_preview::pets::tests::pet_matrix_contains_all_species_names ... ok
[INFO] [stdout] test pet::activity::tests::idle_thought_appears_when_no_recent_activity ... ok
[INFO] [stdout] test pet::activity::tests::idle_thought_is_species_flavored ... ok
[INFO] [stdout] test pet::activity::tests::idle_thought_uses_mood_override_when_sleepy ... ok
[INFO] [stdout] test pet::activity::tests::munch_spike_does_not_fire_below_threshold ... ok
[INFO] [stdout] test pet::activity::tests::munch_spike_fires_when_total_exceeds_threshold ... ok
[INFO] [stdout] test commands::watch::tests::build_watch_view_model_populates_bio_view ... ok
[INFO] [stdout] test pet::activity::tests::profile_activity_stays_silent_for_quiet_recent_profile ... ok
[INFO] [stdout] test pet::activity::tests::stage_transition_emits_evolution_activity ... ok
[INFO] [stdout] test pet::animator::tests::awake_rhythm_matches_the_existing_breath_function ... ok
[INFO] [stdout] test pet::animator::tests::breath_offset_returns_zero_or_one ... ok
[INFO] [stdout] test pet::animator::tests::breath_rhythm_differs_per_species ... ok
[INFO] [stdout] test pet::animator::tests::facing_is_deterministic ... ok
[INFO] [stdout] test pet::animator::tests::facing_matches_actual_drift_direction ... ok
[INFO] [stdout] test commands::watch::tests::watch_progress_rate_attributes_to_bucket_at_not_observed_at ... ok
[INFO] [stdout] test pet::animator::tests::feed_color_differs_per_species ... ok
[INFO] [stdout] test commands::watch::tests::status_today_and_watch_today_agree_across_a_midnight_boundary ... ok
[INFO] [stdout] test pet::animator::tests::feed_pulse_fires_on_profile_burst ... ok
[INFO] [stdout] test pet::animator::tests::feed_pulse_ignores_daily_token_growth_without_profile_burst ... ok
[INFO] [stdout] test pet::animator::tests::feed_pulse_refreshes_for_new_profile_burst_timestamp ... ok
[INFO] [stdout] test pet::animator::tests::first_update_for_age_zero_pet_enqueues_hatch ... ok
[INFO] [stdout] test pet::animator::tests::first_update_for_older_pet_does_not_hatch ... ok
[INFO] [stdout] test pet::animator::tests::low_energy_multiplier_clamps ... ok
[INFO] [stdout] test pet::animator::tests::mood_change_enqueues_fade ... ok
[INFO] [stdout] test pet::animator::tests::mood_drift_scales_per_species ... ok
[INFO] [stdout] test pet::animator::tests::new_animator_has_no_active_effects ... ok
[INFO] [stdout] test pet::animator::tests::shimmer_is_none_outside_window ... ok
[INFO] [stdout] test pet::animator::tests::shimmer_is_some_at_period_start ... ok
[INFO] [stdout] test pet::animator::tests::shimmer_role_is_body_accent_or_pattern ... ok
[INFO] [stdout] test pet::animator::tests::sleep_breath_is_slower_and_continuous_at_onset ... ok
[INFO] [stdout] test pet::animator::tests::small_token_growth_does_not_fire_feed_pulse ... ok
[INFO] [stdout] test pet::animator::tests::stage_change_enqueues_stage_up ... ok
[INFO] [stdout] test pet::animator::tests::stage_up_timings_differ_per_species ... ok
[INFO] [stdout] test pet::animator::tests::token_pop_none_after_two_seconds ... ok
[INFO] [stdout] test pet::animator::tests::token_pop_none_before_pulse ... ok
[INFO] [stdout] test pet::animator::tests::token_pop_none_when_no_pulse ... ok
[INFO] [stdout] test pet::animator::tests::token_pop_some_within_two_seconds ... ok
[INFO] [stdout] test pet::animator::tests::twinkle_fires_at_period_start ... ok
[INFO] [stdout] test pet::animator::tests::twinkle_is_none_outside_window ... ok
[INFO] [stdout] test pet::animator::tests::twinkle_position_within_art_bounds ... ok
[INFO] [stdout] test pet::animator::tests::wander_holds_at_sleep_onset_and_eases_back_on_wake ... ok
[INFO] [stdout] test pet::animator::tests::wander_offset_returns_one_of_three_values ... ok
[INFO] [stdout] test pet::animator::tests::wander_position_is_deterministic ... ok
[INFO] [stdout] test pet::animator::tests::wander_position_returns_zero_when_habitat_too_narrow ... ok
[INFO] [stdout] test pet::animator::tests::wander_position_starts_near_prev_target_and_ends_near_curr_target ... ok
[INFO] [stdout] test pet::animator::tests::wander_position_stays_within_half_range ... ok
[INFO] [stdout] test pet::animator::tests::wander_rests_at_center_most_of_the_time ... ok
[INFO] [stdout] test pet::art::tests::elder_morph_passes_through_for_glitch ... ok
[INFO] [stdout] test pet::art::tests::elder_morph_skips_singleton_for_carved_species ... ok
[INFO] [stdout] test dev_preview::pets::tests::pet_matrix_contains_all_stage_labels ... ok
[INFO] [stdout] test pet::narration::tests::idle_phrase_contains_name ... ok
[INFO] [stdout] test pet::narration::tests::idle_phrase_cycles_variants ... ok
[INFO] [stdout] test pet::narration::tests::is_poll_phrase_matches_generated_eating_lines ... ok
[INFO] [stdout] test pet::narration::tests::mood_phrase_each_variant_is_representable ... ok
[INFO] [stdout] test pet::narration::tests::mood_phrase_happy_contains_name ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_above_50k_is_feast ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_at_10k_is_munch ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_at_1k_is_nibble ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_at_50k_is_feast ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_below_10k_is_nibble ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_below_1k_is_sip ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_below_50k_is_munch ... ok
[INFO] [stdout] test pet::narration::tests::poll_bucket_zero_returns_none ... ok
[INFO] [stdout] test pet::narration::tests::poll_phrase_contains_pet_name ... ok
[INFO] [stdout] test pet::narration::tests::poll_phrase_cycles_variants_as_now_changes ... ok
[INFO] [stdout] test pet::narration::tests::poll_phrase_is_deterministic_for_same_inputs ... ok
[INFO] [stdout] test pet::narration::tests::poll_phrase_sampling_is_deterministic_for_same_inputs ... ok
[INFO] [stdout] test pet::narration::tests::poll_phrase_sampling_keeps_some_slots_not_all_slots ... ok
[INFO] [stdout] test pet::narration::tests::sleep_claiming_idle_lines_are_only_eligible_while_asleep ... ok
[INFO] [stdout] test pet::narration::tests::stage_phrase_fuzz_s5_is_archfuzz ... ok
[INFO] [stdout] test pet::narration::tests::stage_phrase_includes_stage_label ... ok
[INFO] [stdout] test pet::narration::tests::vital_crossing_energy_detected_crossing_downward ... ok
[INFO] [stdout] test pet::narration::tests::vital_crossing_energy_not_triggered_on_upward ... ok
[INFO] [stdout] test pet::narration::tests::vital_crossing_fed_detected_crossing_downward ... ok
[INFO] [stdout] test pet::narration::tests::vital_crossing_fed_not_triggered_on_upward ... ok
[INFO] [stdout] test pet::narration::tests::vital_crossing_fed_not_triggered_when_both_above ... ok
[INFO] [stdout] test pet::narration::tests::vital_crossing_fed_not_triggered_when_both_below ... ok
[INFO] [stdout] test pet::render::tests::hold_eyes_closed_false_keeps_existing_blink_behavior ... ok
[INFO] [stdout] test pet::render::tests::hold_eyes_closed_renders_closed_blink_eyes_without_touching_mood ... ok
[INFO] [stdout] test pet::speech::tests::asleep_speech_is_a_sparse_zzz_cadence_and_suppresses_munch_and_mood_lines ... ok
[INFO] [stdout] test pet::speech::tests::mood_phrase_changes_with_mood ... ok
[INFO] [stdout] test pet::speech::tests::munch_speech_fires_on_high_token_rate ... ok
[INFO] [stdout] test pet::speech::tests::sleep_petting_phrases_come_from_the_sleep_pool ... ok
[INFO] [stdout] test pet::speech::tests::speech_does_not_fake_munch_when_profile_is_idle ... ok
[INFO] [stdout] test pet::speech::tests::speech_hidden_outside_visible_window ... ok
[INFO] [stdout] test pet::speech::tests::speech_uses_profile_burst_for_munch_reaction ... ok
[INFO] [stdout] test pet::speech::tests::speech_visible_in_first_few_seconds_of_cycle ... ok
[INFO] [stdout] test storage::day_axis::tests::day_starts_back_returns_ascending_boundaries_inclusive_of_today ... ok
[INFO] [stdout] test storage::day_axis::tests::fixed_mapper_maps_instants_to_local_dates ... ok
[INFO] [stdout] test storage::day_axis::tests::local_day_start_is_local_midnight_in_utc ... ok
[INFO] [stdout] test storage::day_axis::tests::local_hour_uses_the_instants_own_offset ... ok
[INFO] [stdout] test storage::day_axis::tests::scripted_mapper_groups_dst_days_correctly ... ok
[INFO] [stdout] test storage::day_axis::tests::scripted_mapper_handles_nz_spring_forward_at_positive_offset ... ok
[INFO] [stdout] test storage::state::tests::load_ignores_stray_temp_files_in_the_state_directory ... ok
[INFO] [stdout] test format::tests::format_tokens_renders_canonical_units ... ok
[INFO] [stdout] test pet::activity::tests::profile_activity_adds_sparse_live_line_for_hot_profile ... ok
[INFO] [stdout] test pet::animator::tests::facing_returns_plus_or_minus_one ... ok
[INFO] [stdout] test pet::animator::tests::feed_pulse_fires_on_first_seen_profile_burst_timestamp ... ok
[INFO] [stdout] test storage::state::tests::pet_state_deserializes_legacy_string_stage_format ... ok
[INFO] [stdout] test storage::state::tests::pet_state_deserializes_pre_0_2_seen_stage_transitions_pair_format ... ok
[INFO] [stdout] test storage::state::tests::pet_state_serializes_to_legacy_string_format ... ok
[INFO] [stdout] test storage::state::tests::load_rejects_corrupted_destination_file ... ok
[INFO] [stdout] test storage::state::tests::save_leaves_no_temp_files_behind ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_effective_tokens_between_excludes_unapplied_rows ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_effective_tokens_between_is_half_open ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_bucket_sums_between_returns_empty_when_empty ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_bucket_sums_between_groups_by_bucket ... ok
[INFO] [stdout] test pet::art::tests::every_template_line_is_eleven_cells_wide ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_effective_tokens_between_returns_zero_when_empty ... ok
[INFO] [stdout] test storage::usage_store::tests::best_day_sums_overlap_between_events_and_aggregates ... ok
[INFO] [stdout] test storage::usage_store::tests::compact_before_keeps_rows_with_recent_bucket_at_even_when_period_start_is_ancient ... ok
[INFO] [stdout] test storage::usage_store::tests::best_day_returns_largest_daily_total_from_events_only ... ok
[INFO] [stdout] test storage::usage_store::tests::best_day_returns_zero_when_empty ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_token_shape_between_returns_default_when_empty ... ok
[INFO] [stdout] test storage::usage_store::tests::applied_token_shape_between_sums_components ... ok
[INFO] [stdout] test storage::usage_store::tests::events_within_boundary_is_inclusive_at_lower_bound ... ok
[INFO] [stdout] test storage::usage_store::tests::latest_applied_bucket_at_and_existence_probes ... ok
[INFO] [stdout] test storage::usage_store::tests::compact_before_still_compacts_rows_old_on_both_axes ... ok
[INFO] [stdout] test storage::usage_store::tests::latest_applied_marked_at_returns_max_applied_at ... ok
[INFO] [stdout] test storage::usage_store::tests::events_within_returns_events_inside_window_only ... ok
[INFO] [stdout] test storage::usage_store::tests::has_any_applied_events_false_with_only_unapplied_rows ... ok
[INFO] [stdout] test storage::usage_store::tests::latest_applied_bucket_at_before_returns_none_when_no_earlier_bucket ... ok
[INFO] [stdout] test storage::usage_store::tests::seven_day_token_history_zero_for_empty_store ... ok
[INFO] [stdout] test storage::usage_store::tests::seven_day_token_history_returns_seven_oldest_first ... ok
[INFO] [stdout] test storage::usage_store::tests::seven_day_token_history_uses_local_bucket_at_days_and_no_aggregates_union ... ok
[INFO] [stdout] test storage::usage_store::tests::seven_day_token_history_sums_multiple_events_per_day ... ok
[INFO] [stdout] test storage::usage_store::tests::migrate_creates_bucket_at_index ... ok
[INFO] [stdout] test storage::usage_store::tests::token_totals_by_source_between_includes_both_boundaries ... ok
[INFO] [stdout] test storage::usage_store::tests::token_totals_by_source_between_excludes_outside_window ... ok
[INFO] [stdout] test tui::app::tests::evolution_overlay_renders_the_pet_awake_even_while_asleep ... ok
[INFO] [stdout] test storage::usage_store::tests::today_effective_tokens_groups_on_local_bucket_at_day_applied_only ... ok
[INFO] [stdout] test tui::app::tests::handle_mouse_clears_cursor_when_mouse_moves_outside_pet_hit_area ... ok
[INFO] [stdout] test tui::app::tests::handle_mouse_tracks_cursor_only_over_pet_hit_area ... ok
[INFO] [stdout] test tui::app::tests::flat_mode_does_not_stamp_feed_pulse_for_live_burst ... ok
[INFO] [stdout] test tui::app::tests::petting_a_sleeping_pet_uses_the_sleep_pool_and_does_not_wake_it ... ok
[INFO] [stdout] test tui::app::tests::help_overlay_renders_the_pet_awake_even_while_asleep ... ok
[INFO] [stdout] test tui::app::tests::refresh_stamps_life_profile_from_applied_signal_after_session_primer ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_hit_test_ignores_unclipped_target_area ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_hit_test_returns_highest_z_target_containing_point ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_indexes_targets_by_stable_path ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_populates_owner_node_targets ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_rejects_duplicate_nodes ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_rejects_duplicate_targets_without_mutating_owner_node ... ok
[INFO] [stdout] test tui::component::geometry::tests::component_layout_rejects_targets_with_unknown_owner ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::accent_anchor_stays_with_prop_across_rotation_windows ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::accent_collision_retry_does_not_change_with_motion_phase ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::accent_collision_retry_is_stable_across_rotation_windows ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::accent_motion_never_jumps_more_than_one_cell ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::accent_retry_escapes_blocked_first_column ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::accent_rotation_is_stable_within_ten_minute_window ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::background_props_avoid_silhouette_halo_rects ... ok
[INFO] [stdout] test tui::app::tests::refresh_adds_profile_activity_without_replacing_usage_rows ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::behind_props_ignore_silhouette_halo_rects ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::flat_color_omits_accents_but_keeps_trophy_shapes ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::habitat_props_attach_pet_layer_from_catalog ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::moving_accents_do_not_wrap_between_adjacent_phases ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::planter_and_sprout_sway_with_clock ... ok
[INFO] [stdout] test tui::app::tests::evolution_overlay_does_not_fire_for_stage_that_predates_app_launch ... ok
[INFO] [stdout] test tui::app::tests::evolution_overlay_hold_is_long_enough_to_read_three_lines ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::prop_cells_stay_inside_habitat_and_outside_exclusions ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::prop_visual_glyphs_are_single_scalar_values ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::trophy_color_comes_from_catalog_not_species ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::trophy_selection_caps_at_six_by_priority_then_age ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::trophy_sprites_render_all_or_nothing ... ok
[INFO] [stdout] test tui::component::habitat_props::tests::trophy_zones_place_objects_in_floor_air_and_center_areas ... ok
[INFO] [stdout] test tui::component::pet_scene::tests::pet_scene_layout_centers_art_and_exports_targets_without_speech ... ok
[INFO] [stdout] test tui::component::pet_scene::tests::pet_scene_layout_clips_art_inside_speech_active_min_height_panel ... ok
[INFO] [stdout] test tui::component::pet_scene::tests::pet_scene_hit_target_wins_over_art_and_effect_targets ... ok
[INFO] [stdout] test tui::component::pet_scene::tests::pet_scene_layout_reserves_optional_speech_above_content ... ok
[INFO] [stdout] test tui::component::pet_scene::tests::pet_scene_layout_uses_stable_pet_owner_and_paths ... ok
[INFO] [stdout] test tui::app::tests::asleep_day_context_sets_calm_mode_and_it_survives_the_poll_install ... ok
[INFO] [stdout] test tui::component::taffy_backend::tests::taffy_backend_clips_children_to_parent ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::layout_watch_compact_records_bio_hidden_decision ... ok
[INFO] [stdout] test tui::component::taffy_backend::tests::taffy_backend_conserves_sibling_widths_with_odd_remainders ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::layout_watch_compact_preserves_pet_targets_at_default_height ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::layout_watch_wide_speech_active_pet_targets_stay_inside_pet_node ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::layout_watch_wide_info_columns_share_band_top_and_bottom ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::wide_layout_pet_panel_spans_body_width ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::layout_watch_wide_exports_required_nodes_and_pet_targets ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::compact_threshold_boundary ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::wide_layout_info_band_is_two_columns_below_pet ... ok
[INFO] [stdout] test game::runtime::tests::idle_narration_uses_sleep_vocabulary_only_when_scene_asleep ... ok
[INFO] [stdout] test game::runtime::tests::single_cadence_huge_usage_is_backfill_not_live_burst ... ok
[INFO] [stdout] test tui::component::widgets::tests::feed_list_clamps_rendered_lines_to_area_height ... ok
[INFO] [stdout] test tui::component::widgets::tests::feed_list_from_watch_uses_existing_feed_formatting ... ok
[INFO] [stdout] test tui::component::widgets::tests::inline_sparkline_reuses_sparkline_glyphs ... ok
[INFO] [stdout] test game::runtime::tests::apply_unapplied_usage_returns_applied_signal_summary ... ok
[INFO] [stdout] test tui::component::widgets::tests::progress_bar_xp_gradient_preserves_xp_label ... ok
[INFO] [stdout] test tui::component::widgets::tests::panel_renders_title_border_padding_and_surface ... ok
[INFO] [stdout] test tui::component::widgets::tests::stat_row_uses_existing_bar_shape ... ok
[INFO] [stdout] test tui::component::widgets::tests::progress_bar_can_append_rate_segment ... ok
[INFO] [stdout] test tui::day::tests::day_shape_classification_is_effective_weighted_and_detects_shapeless_rows ... ok
[INFO] [stdout] test tui::day::tests::equal_length_quiet_runs_fall_back_to_clock_defaults ... ok
[INFO] [stdout] test game::runtime::tests::delayed_applied_usage_is_backfill_not_live_burst ... ok
[INFO] [stdout] test tui::day::tests::night_owl_windows_invert ... ok
[INFO] [stdout] test tui::day::tests::no_quiet_run_falls_back_to_clock_defaults ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::wide_layout_vitals_and_today_share_top_y ... ok
[INFO] [stdout] test tui::component::watch_screen::tests::wide_layout_progress_and_feed_share_top_y ... ok
[INFO] [stdout] test tui::day::tests::phase_for_hour_handles_wrap_around_window ... ok
[INFO] [stdout] test tui::day::tests::phase_for_hour_maps_circular_ranges ... ok
[INFO] [stdout] test tui::day::tests::quiet_share_threshold_ignores_trace_activity ... ok
[INFO] [stdout] test tui::day::tests::short_active_day_user_keeps_a_real_day ... ok
[INFO] [stdout] test tui::day::tests::short_quiet_run_falls_back_to_clock_defaults ... ok
[INFO] [stdout] test tui::day::tests::split_shift_picks_the_longest_quiet_run ... ok
[INFO] [stdout] test tui::day::tests::typical_nine_to_six_worker_gets_carved_windows ... ok
[INFO] [stdout] test tui::layout::frame_fill_tests::frame_fill_for_stage_returns_expected_char ... ok
[INFO] [stdout] test tui::layout::frame_title_tests::frame_title_does_not_repeat_species ... ok
[INFO] [stdout] test tui::day::tests::climate_is_modal_over_prior_days_and_mixed_detail_weeks_ignore_shapeless_days ... ok
[INFO] [stdout] test tui::layout::render_compact_tests::render_compact_draws_rounded_frame ... ok
[INFO] [stdout] test tui::day::tests::newborn_that_never_ate_stays_awake_at_night ... ok
[INFO] [stdout] test commands::watch::tests::cold_start_catchup_wakes_the_pet_once_through_the_real_smear_path ... ok
[INFO] [stdout] test tui::layout::render_compact_tests::render_compact_pet_visible_at_80x40_with_crystal_pet ... ok
[INFO] [stdout] test tui::day::tests::today_ratio_divides_by_baseline_and_yesterday_distinguishes_idle_from_no_coverage ... ok
[INFO] [stdout] test tui::day::tests::pet_sleeps_after_idle_night_window_and_only_at_night ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_bio_panel_appears_in_left_column ... ok
[INFO] [stdout] test tui::day::tests::date_seed_rolls_at_dawn_not_midnight ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_footer_appears_in_frame ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_frame_spans_bounded_width_and_terminal_height ... ok
[INFO] [stdout] test tui::day::tests::recent_tokens_keep_the_pet_awake_including_future_dated_rows ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_shows_panel_content ... ok
[INFO] [stdout] test tui::layout::tests::pet_effect_rect_returns_empty_rect_when_pet_art_target_is_absent ... ok
[INFO] [stdout] test tui::life::tests::calm_mode_reduces_prop_reaction_intensity ... ok
[INFO] [stdout] test tui::life::tests::classify_source_accent_covers_source_mix_shapes ... ok
[INFO] [stdout] test tui::life::tests::classify_work_weather_covers_token_shape_buckets ... ok
[INFO] [stdout] test tui::life::tests::claude_source_accent_can_react_on_earned_shell ... ok
[INFO] [stdout] test tui::life::tests::default_profile_is_quiet_and_clear ... ok
[INFO] [stdout] test tui::life::tests::diagnostics_only_signal_is_non_live ... ok
[INFO] [stdout] test tui::life::tests::first_session_live_signal_suppresses_burst_and_detail_flare ... ok
[INFO] [stdout] test tui::life::tests::life_signal_state_clamps_burst_to_profile_contract ... ok
[INFO] [stdout] test tui::life::tests::life_signal_state_distinguishes_idle_warm_hot_and_cooling ... ok
[INFO] [stdout] test tui::life::tests::missing_detail_does_not_make_live_signal_non_live ... ok
[INFO] [stdout] test tui::life::tests::non_live_signal_suppresses_burst_but_not_missing_detail ... ok
[INFO] [stdout] test tui::life::tests::prop_reactions_do_not_invent_unearned_props ... ok
[INFO] [stdout] test tui::life::tests::prop_reactions_preserve_explicit_earned_profile_reactions ... ok
[INFO] [stdout] test tui::life::tests::prop_reactions_target_only_earned_visible_props ... ok
[INFO] [stdout] test tui::panels::bars::tests::bar_spans_flat_filled_cells_share_stat_color ... ok
[INFO] [stdout] test tui::panels::bars::tests::bar_spans_full_fill_renders_twelve_solid_cells ... ok
[INFO] [stdout] test tui::panels::bars::tests::bar_spans_label_and_value_share_stat_color ... ok
[INFO] [stdout] test tui::panels::bars::tests::bar_spans_truecolor_filled_cells_span_a_gradient ... ok
[INFO] [stdout] test tui::panels::bars::tests::bar_spans_zero_fill_renders_twelve_empty_cells ... ok
[INFO] [stdout] test tui::panels::bars::tests::build_spark_line_all_zero_renders_seven_dots ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::compact_threshold_switches_modes ... ok
[INFO] [stdout] test tui::panels::bars::tests::build_spark_line_seven_days_uses_block_heights ... ok
[INFO] [stdout] test tui::panels::bars::tests::format_tokens_full_uses_thousands_separators ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_title_appears_in_frame ... ok
[INFO] [stdout] test tui::panels::bars::tests::format_tokens_short_rounds_to_k_with_one_decimal ... ok
[INFO] [stdout] test tui::panels::bio_card::tests::bio_panel_renders_sub_day_age ... ok
[INFO] [stdout] test tui::panels::bio_card::tests::bio_panel_renders_title_and_two_rows ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_does_not_overflow_small_rect ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_clamps_to_allocated_rect_height ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_preferred_constraint_matches_event_count ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_renders_divider_title ... ok
[INFO] [stdout] test tui::layout::render_compact_tests::render_compact_shows_vitals_content ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_renders_event_text ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_source_label_colors ... ok
[INFO] [stdout] test tui::panels::pet::tests::activity_glyph_budget_caps_compact_hot_state ... ok
[INFO] [stdout] test tui::panels::pet::tests::activity_glyph_budget_suppresses_calm_mode ... ok
[INFO] [stdout] test tui::panels::pet::tests::activity_glyph_color_keeps_weather_visible_with_source_accent ... ok
[INFO] [stdout] test tui::panels::pet::tests::activity_glyph_color_uses_source_accent_when_available ... ok
[INFO] [stdout] test tui::panels::pet::tests::activity_glyphs_are_suppressed_for_flat_color ... ok
[INFO] [stdout] test tui::panels::pet::tests::activity_style_lift_is_clamped_and_flat_safe ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyph_must_be_fully_inside_panel_area ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyph_count_scales_with_habitat_area ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyphs_are_deterministic_per_minute ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyphs_empty_on_flat_color ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyphs_handle_one_row_habitat_without_panic ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyphs_never_overlap_exclusions ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyphs_present_with_floor_row ... ok
[INFO] [stdout] test tui::panels::pet::tests::ambient_glyphs_within_habitat_bounds ... ok
[INFO] [stdout] test tui::panels::pet::tests::build_cursor_eye_string_preserves_span_width ... ok
[INFO] [stdout] test tui::panels::pet::tests::cursor_eye_glyph_picks_directional_chars ... ok
[INFO] [stdout] test tui::panels::pet::tests::cursor_normalized_x_disabled_when_tracking_off ... ok
[INFO] [stdout] test tui::panels::pet::tests::cursor_eyes_are_disabled_while_asleep ... ok
[INFO] [stdout] test tui::panels::pet::tests::cursor_normalized_x_is_none_when_cursor_outside_area ... ok
[INFO] [stdout] test tui::day::tests::maturity_gate_needs_active_days_and_hour_diversity ... ok
[INFO] [stdout] test tui::panels::pet::tests::flat_tier_still_renders_zero_ambient_glyphs_at_night ... ok
[INFO] [stdout] test tui::day::tests::derive_wake_resume_pins_wake_resume_values ... ok
[INFO] [stdout] test tui::panels::pet::tests::night_sky_uses_the_night_family_and_a_smaller_budget ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_inner_rect_in_panel_does_not_panic_when_area_is_smaller_than_pet ... ok
[INFO] [stdout] test tui::panels::bio_card::tests::bio_panel_preferred_constraint_is_three ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_panel_lets_background_show_through_empty_silhouette_cells ... ok
[INFO] [stdout] test tui::panels::feed::tests::feed_panel_empty_events_renders_cleanly ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_panel_centers_narrow_art_in_wide_area ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_panel_renders_pet_centered_in_tall_rect ... ok
[INFO] [stdout] test tui::panels::pet::tests::cursor_normalized_x_maps_right_edge_to_near_positive_one ... ok
[INFO] [stdout] test tui::panels::pet::tests::cursor_normalized_x_maps_left_edge_to_negative_one ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_role_style_maps_eye_role_to_eye_style ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_silhouette_halo_covers_glyph_cells_and_eight_neighbors ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_panel_preferred_constraint_is_fill ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_panel_renders_some_braille_into_area ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_silhouette_halo_for_real_pet_is_smaller_than_inflated_rect ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_does_not_include_helpers_or_spark_strings ... ok
[INFO] [stdout] test tui::panels::pet::tests::token_pop_requires_current_profile_burst ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_silhouette_halo_mirrors_columns_when_facing_left ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_silhouette_halo_skips_pure_whitespace_rows ... ok
[INFO] [stdout] test tui::panels::pet::tests::phase_blend_interpolates_the_sky_color ... ok
[INFO] [stdout] test tui::panels::progress::tests::progress_panel_idle_hides_rate_segment ... ok
[INFO] [stdout] test tui::panels::progress::tests::progress_panel_at_s6_renders_max_evolved ... ok
[INFO] [stdout] test tui::panels::pet::tests::prop_reaction_style_lifts_rgb_and_preserves_flat ... ok
[INFO] [stdout] test tui::panels::progress::tests::progress_panel_preferred_constraint_is_two ... ok
[INFO] [stdout] test tui::panels::today::tests::format_signed_tokens_short_positive_uses_plus ... ok
[INFO] [stdout] test tui::panels::today::tests::format_signed_tokens_short_zero_renders_plus_zero ... ok
[INFO] [stdout] test tui::panels::progress::tests::progress_panel_renders_title_and_xp_bar_without_stage_arrow ... ok
[INFO] [stdout] test tui::panels::pet::tests::pet_panel_swaps_eye_glyph_when_cursor_inside ... ok
[INFO] [stdout] test tui::panels::today::tests::format_signed_tokens_short_negative_uses_minus ... ok
[INFO] [stdout] test tui::panels::today::tests::format_tokens_full_comma_separates_thousands ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_preferred_constraint_is_six ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_divider_title ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_source_labels ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_blocked_marker_on_unhealthy_source ... ok
[INFO] [stdout] test tui::panels::vitals::tests::vitals_panel_preferred_constraint_is_four ... ok
[INFO] [stdout] test tui::panels::vitals::tests::vitals_panel_renders_into_area ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_source_labels_use_source_colors ... ok
[INFO] [stdout] test tui::panels::vitals::tests::vitals_panel_renders_three_labels_no_xp ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_tokens_row ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_seven_day_arrow_aligns_with_annotation_column ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_last_10m_row ... ok
[INFO] [stdout] test tui::panels::vitals::tests::vitals_panel_rows_render_a_gradient_in_truecolor ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::green_ramp_middle_stop_matches_dark_palette_good ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_dash_for_absent_source ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::amber_ramp_middle_stop_matches_palette_accent ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::light_palette_fg_is_dark_and_bg_is_light ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::ramp_index_full_bar_spans_entire_ramp ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::light_palette_inverts_lightness_relative_to_dark ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::ramp_index_clamps_to_four ... ok
[INFO] [stdout] test tui::panels::today::tests::today_panel_renders_seven_day_inline_footer ... ok
[INFO] [stdout] test tui::panels::vitals::tests::vitals_panel_rows_use_per_stat_colors ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::ramp_index_single_cell_returns_zero ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::ramp_index_zero_fill_never_called ... ok
[INFO] [stdout] test tui::style::color_capability_tests::flat_when_term_dumb ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::oversized_terminal_pads_around_centered_frame ... ok
[INFO] [stdout] test tui::style::color_capability_tests::flat_when_no_color_set ... ok
[INFO] [stdout] test tui::style::color_capability_tests::truecolor_when_colorterm_truecolor ... ok
[INFO] [stdout] test tui::style::color_capability_tests::truecolor_when_colorterm_24bit ... ok
[INFO] [stdout] test tui::style::color_capability_tests::flat_when_no_relevant_env ... ok
[INFO] [stdout] test tui::style::stat_color_tests::claude_color_is_violet ... ok
[INFO] [stdout] test tui::style::stat_color_tests::codex_color_is_green ... ok
[INFO] [stdout] test tui::style::stat_color_tests::energy_color_is_cyan ... ok
[INFO] [stdout] test tui::style::stat_color_tests::fed_color_is_amber ... ok
[INFO] [stdout] test tui::style::stat_color_tests::xp_color_is_coral ... ok
[INFO] [stdout] test tui::style::stat_color_tests::happy_color_is_pink ... ok
[INFO] [stdout] test tui::style::stat_color_tests::xp_color_is_distinct_from_fed_color ... ok
[INFO] [stdout] test tui::view_model::tests::bio_view_age_label_day_or_more_drops_hours ... ok
[INFO] [stdout] test tui::view_model::tests::bio_view_age_label_sub_day_formats_as_hours ... ok
[INFO] [stdout] test tui::view_model::tests::progress_view_at_max_stage ... ok
[INFO] [stdout] test tui::view_model::tests::progress_view_has_required_fields ... ok
[INFO] [stdout] test tui::view_model::tests::watch_view_model_fixture_has_progress_and_bio ... ok
[INFO] [stdout] test usage::ccusage::ccusage_major_version_tests::parses_name_prefixed_and_bare_and_v_prefixed_versions ... ok
[INFO] [stdout] test usage::ccusage::ccusage_major_version_tests::unparseable_versions_stay_on_the_legacy_invocation ... ok
[INFO] [stdout] test usage::ccusage::parse_period_start_tests::codex_short_month_format_is_accepted ... ok
[INFO] [stdout] test usage::ccusage::parse_period_start_tests::codex_short_month_handles_single_digit_day ... ok
[INFO] [stdout] test usage::ccusage::parse_period_start_tests::rfc3339_format_is_accepted ... ok
[INFO] [stdout] test usage::normalize::tests::ccusage_v20_period_field_is_accepted_for_claude_and_codex_rows ... ok
[INFO] [stdout] test usage::normalize::tests::claude_input_already_excludes_cache_reads ... ok
[INFO] [stdout] test usage::ccusage::parse_period_start_tests::unknown_format_returns_error ... ok
[INFO] [stdout] test usage::normalize::tests::legacy_date_field_is_still_preferred_over_period ... ok
[INFO] [stdout] test usage::ccusage::parse_period_start_tests::iso_date_only_is_accepted ... ok
[INFO] [stdout] test usage::normalize::tests::codex_uncached_input_subtracts_cached_subset ... ok
[INFO] [stdout] test tui::layout::tests::pet_effect_rect_returns_component_layout_pet_art_target ... ok
[INFO] [stdout] test tui::style::bar_ramp_tests::light_ramps_invert_direction ... ok
[INFO] [stdout] test tui::layout::render_wide_tests::render_wide_draws_rounded_frame ... ok
[INFO] [stdout] test usage::ccusage::run_command_timeout_tests::fast_child_returns_output ... ok
[INFO] [stdout] test usage::ccusage::run_command_timeout_tests::timeout_kills_long_running_child ... ok
[INFO] [stdout] test storage::usage_store::tests::token_totals_by_source_between_groups_and_sums_unbounded ... ok
[INFO] [stdout] test dev_preview::habitat_props::tests::props_preview_has_catalog_and_contextual_watch_frames ... ok
[INFO] [stdout] test dev_preview::watch::tests::watch_frames_include_wide_tall_wide_and_compact ... ok
[INFO] [stdout] test dev_preview::watch::tests::watch_frames_are_stable_for_fixed_time ... ok
[INFO] [stdout] test commands::watch::tests::oversized_staged_backlog_becomes_visible_over_successive_applies ... ok
[INFO] [stdout] test dev_preview::scenarios::tests::all_selection_writes_watch_and_pet_scenarios ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/glorp-bfebebb4a49ec37b)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 415 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/acceptance_matrix.rs (/opt/rustwide/target/debug/deps/acceptance_matrix-496b8cb51a07105c)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test build_report_tracks_every_story_card_and_tokenpet_source ... ok
[INFO] [stdout] test npm_wrapper_contract_matches_platform_package_topology ... ok
[INFO] [stdout] test cli_surface_excludes_forbidden_prototype_features ... ok
[INFO] [stdout] test wrapper_wires_bundled_helpers_without_disabling_path_fallback ... ok
[INFO] [stdout] test one_shot_tokenpet_mockup_remains_the_hifi_style_source ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_smoke.rs (/opt/rustwide/target/debug/deps/cli_smoke-8b3e9c47aa472e0f)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test help_lists_mvp_commands_and_no_manual_feed ... ok
[INFO] [stdout] test help_hides_dev_preview_command ... ok
[INFO] [stdout] test init_without_name_presents_generated_name_and_uses_it_noninteractively ... ok
[INFO] [stdout] test init_creates_state_and_blocks_second_init ... ok
[INFO] [stdout] test reset_requires_confirmation_and_removes_pet_state ... ok
[INFO] [stdout] test rename_changes_display_name_without_changing_seed ... ok
[INFO] [stdout] test init_with_confirmed_reinit_replaces_pet_state_without_touching_usage_db ... ok
[INFO] [stdout] test init_does_not_feed_pet_or_persist_history_as_usage_events ... ok
[INFO] [stdout] test init_uses_historical_usage_for_calibration_without_initial_xp ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.89s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/dev_preview.rs (/opt/rustwide/target/debug/deps/dev_preview-cda7b2ec74719b9e)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test dev_preview_refuses_regular_file_output ... ok
[INFO] [stdout] test dev_preview_refuses_non_preview_directory ... ok
[INFO] [stdout] test dev_preview_pets_writes_species_stage_matrix ... ok
[INFO] [stdout] test dev_preview_props_writes_habitat_prop_gallery_and_watch_variants ... ok
[INFO] [stdout] test dev_preview_watch_includes_liveliness_profile_inputs ... ok
[INFO] [stdout] test dev_preview_watch_includes_day_context_inputs ... ok
[INFO] [stdout] test dev_preview_does_not_use_user_config_dir ... ok
[INFO] [stdout] test dev_preview_html_contains_layout_overlay_controls ... ok
[INFO] [stdout] test dev_preview_watch_wide_normal_frame_snapshot ... ok
[INFO] [stdout] test dev_preview_html_references_local_assets_that_exist ... ok
[INFO] [stdout] test dev_preview_command_is_callable ... ok
[INFO] [stdout] test dev_preview_watch_daycontext_night_asleep_frame_snapshot ... ok
[INFO] [stdout] test dev_preview_watch_includes_real_tall_wide_frame ... ok
[INFO] [stdout] test dev_preview_liveliness_changes_pet_scene_cells_not_only_text ... ok
[INFO] [stdout] test dev_preview_watch_writes_layout_artifacts_and_manifest_entries ... ok
[INFO] [stdout] test dev_preview_watch_manifest_lists_habitat_prop_fixture_ids ... ok
[INFO] [stdout] test dev_preview_watch_writes_expected_artifacts ... ok
[INFO] [stdout] test dev_preview_rerun_replaces_owned_output ... ok
[INFO] [stdout] test dev_preview_defaults_to_target_output_and_all_scenario ... ok
[INFO] [stdout] test dev_preview_all_writes_watch_and_pet_artifacts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/doctor_status.rs (/opt/rustwide/target/debug/deps/doctor_status-90382d455c509ac6)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test status_clamps_zero_usage_display ... ok
[INFO] [stdout] test status_includes_recent_evolution_event_when_present ... ok
[INFO] [stdout] test doctor_reports_missing_helpers_with_setup_instructions ... ok
[INFO] [stdout] test diagnostics_do_not_print_raw_transcript_content ... ok
[INFO] [stdout] test provider_failure_does_not_decay_or_overwrite_last_known_pet_state ... ok
[INFO] [stdout] test doctor_sanitizes_invalid_json_and_helper_stderr ... ok
[INFO] [stdout] test status_persists_real_usage_delta_into_pet_state ... ok
[INFO] [stdout] test doctor_reports_helper_versions_when_available ... ok
[INFO] [stdout] test repeated_provider_failures_keep_last_known_pet_state ... ok
[INFO] [stdout] test status_is_pipe_friendly_when_pet_exists ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/game_rules.rs (/opt/rustwide/target/debug/deps/game_rules-26c26aeb4d596707)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test cache_read_weight_is_configurable ... ok
[INFO] [stdout] test cost_never_changes_effective_tokens ... ok
[INFO] [stdout] test effective_tokens_count_cache_reads_lightly ... ok
[INFO] [stdout] test effective_usage_improves_vitals_without_exceeding_caps ... ok
[INFO] [stdout] test missing_buckets_default_to_zero ... ok
[INFO] [stdout] test extreme_bucket_cannot_skip_most_of_lifecycle ... ok
[INFO] [stdout] test historical_usage_calibrates_but_does_not_grant_initial_xp ... ok
[INFO] [stdout] test calibration_groups_multiple_rows_on_the_same_active_day_before_median ... ok
[INFO] [stdout] test low_and_high_usage_users_progress_by_relative_effort ... ok
[INFO] [stdout] test one_active_day_catchup_splits_into_six_to_twelve_buckets ... ok
[INFO] [stdout] test history_learns_weekend_activity_from_enough_active_days ... ok
[INFO] [stdout] test sixty_daily_catchups_reach_s6_without_duplicate_transition_pressure ... ok
[INFO] [stdout] test overnight_and_weekend_decay_is_slower ... ok
[INFO] [stdout] test sparse_active_hours_keep_conservative_defaults ... ok
[INFO] [stdout] test historically_inactive_hours_decay_slowly ... ok
[INFO] [stdout] test sparse_history_keeps_conservative_defaults ... ok
[INFO] [stdout] test stage_transition_event_is_recorded_once ... ok
[INFO] [stdout] test untimestamped_history_keeps_default_active_hours_even_when_dense ... ok
[INFO] [stdout] test weekend_heavy_profile_learns_weekend_activity ... ok
[INFO] [stdout] test sustained_absence_can_wilt_but_real_usage_recovers ... ok
[INFO] [stdout] test timestamped_history_learns_active_and_inactive_hour_rhythm ... ok
[INFO] [stdout] test there_is_no_death_transition ... ok
[INFO] [stdout] test same_day_gap_does_not_jump_to_wilted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/generation.rs (/opt/rustwide/target/debug/deps/generation-b4646e3937c79e54)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test hatching_name_decision_accepts_generated_or_replacement_name ... ok
[INFO] [stdout] test same_seed_generates_same_pet ... ok
[INFO] [stdout] test tokenpet_stage_labels_match_spec ... ok
[INFO] [stdout] test palette_roles_follow_tokenpet_hue_offsets ... ok
[INFO] [stdout] test seeded_generation_selects_visible_traits_palette_morph_and_phase ... ok
[INFO] [stdout] test species_names_have_distinct_grammar ... ok
[INFO] [stdout] test different_same_species_seeds_have_visible_variation ... ok
[INFO] [stdout] test adult_stages_have_distinct_silhouettes_for_representative_species ... ok
[INFO] [stdout] test render_is_stable_for_same_seed_state_and_tick ... ok
[INFO] [stdout] test species_have_enough_seeded_morph_variety ... ok
[INFO] [stdout] test stage_labels_are_species_specific_across_shared_thresholds ... ok
[INFO] [stdout] test species_animation_profiles_match_tokenpet_mockup ... ok
[INFO] [stdout] test mvp_species_are_available ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/runtime_integration.rs (/opt/rustwide/target/debug/deps/runtime_integration-7f76f9d3840fbdfd)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test habitat_catalog_exposes_v1_prop_ids_and_kinds ... ok
[INFO] [stdout] test fresh_pet_state_starts_with_empty_habitat_state ... ok
[INFO] [stdout] test no_delta_poll_applies_rhythm_decay_without_granting_xp ... ok
[INFO] [stdout] test unapplied_usage_survives_state_save_failure_and_applies_once_next_run ... ok
[INFO] [stdout] test staged_usage_apportions_token_buckets_across_smear_rows ... ok
[INFO] [stdout] test reflected_unapplied_usage_does_not_unlock_ladder_twice_on_mark_retry ... ok
[INFO] [stdout] test lifetime_threshold_unlocks_one_ladder_prop_once ... ok
[INFO] [stdout] test cold_start_does_not_narrate_initial_mood ... ok
[INFO] [stdout] test one_large_poll_unlocks_ladder_props_in_threshold_order ... ok
[INFO] [stdout] test wilted_recovery_unlocks_sprout_once ... ok
[INFO] [stdout] test first_codex_usage_unlocks_signal_lamp_once ... ok
[INFO] [stdout] test heavy_session_unlocks_planter_once ... ok
[INFO] [stdout] test provider_delta_updates_pet_state_and_records_evolution_once ... ok
[INFO] [stdout] test rapid_token_polls_do_not_narrate_every_feed ... ok
[INFO] [stdout] test existing_lifetime_counter_reconciles_ladder_props_without_usage_delta ... ok
[INFO] [stdout] test apply_reconciles_saved_stage_when_xp_outranks_it ... ok
[INFO] [stdout] test runtime_compacts_old_usage_events_after_poll ... ok
[INFO] [stdout] test catchup_application_records_each_stage_transition_once ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.91s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/storage_privacy.rs (/opt/rustwide/target/debug/deps/storage_privacy-b238df78fb12386f)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test config_dir_env_override_wins_when_resolving_paths ... ok
[INFO] [stdout] test default_paths_are_under_home_config_glorp ... ok
[INFO] [stdout] test state_files_stay_inside_config_override ... ok
[INFO] [stdout] test malformed_or_unsupported_state_returns_error_without_resetting ... ok
[INFO] [stdout] test pet_state_round_trips_schema_and_vitals ... ok
[INFO] [stdout] test config_defaults_and_cache_read_weight_override_load ... ok
[INFO] [stdout] test normalized_usage_storage_never_persists_transcript_payloads ... ok
[INFO] [stdout] test usage_events_store_observed_and_bucket_times_separately_from_period_start ... ok
[INFO] [stdout] test compacts_events_older_than_ninety_days_without_losing_lifetime_counters ... ok
[INFO] [stdout] test old_usage_rows_migrate_with_conservative_event_times ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/style_tokens.rs (/opt/rustwide/target/debug/deps/style_tokens-35069b0af8639676)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test bar_ramp_accent_middle_stop_matches_palette_accent ... ok
[INFO] [stdout] test semantic_styles_preserve_tokenpet_roles ... ok
[INFO] [stdout] test bar_ramp_good_middle_stop_matches_palette_good ... ok
[INFO] [stdout] test component_style_facade_maps_semantic_tokens_to_ratatui_styles ... ok
[INFO] [stdout] test palette_matches_tokenpet_handoff_values ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tui_render.rs (/opt/rustwide/target/debug/deps/tui_render-2573dcf18fb8e88e)
[INFO] [stdout] 
[INFO] [stdout] running 45 tests
[INFO] [stdout] test drop_does_not_block_on_in_flight_poll ... ok
[INFO] [stdout] test manual_refresh_resets_interval_timer_for_test ... ok
[INFO] [stdout] test duplicate_poll_requests_while_in_flight_are_deduped ... ok
[INFO] [stdout] test animation_tick_rerenders_pet_art_without_polling_usage ... ok
[INFO] [stdout] test compact_layout_records_ordered_degradation_decisions ... ok
[INFO] [stdout] test app_refresh_and_interval_use_polling_path ... ok
[INFO] [stdout] test animation_advances_while_poll_is_in_flight ... ok
[INFO] [stdout] test p_key_pets_pet_and_sets_speech_bubble ... ok
[INFO] [stdout] test initial_poll_starts_in_background_without_replacing_cached_frame ... ok
[INFO] [stdout] test narrow_layout_keeps_required_vitals_visible ... ok
[INFO] [stdout] test ordinary_panels_use_component_widgets_instead_of_ratatui_blocks ... ok
[INFO] [stdout] test pet_effect_target_matches_component_layout_pet_art_target ... ok
[INFO] [stdout] test component_layout_has_no_overlapping_required_components ... ok
[INFO] [stdout] test helper_status_string_is_not_rendered_in_layout ... ok
[INFO] [stdout] test polling_tick_updates_activity_bucket_and_event_log ... ok
[INFO] [stdout] test progress_panel_uses_component_style_facade ... ok
[INFO] [stdout] test question_mark_toggles_help_overlay ... ok
[INFO] [stdout] test render_context_clock_controls_pet_scene_time ... ok
[INFO] [stdout] test format_tokens_uses_comma_formatting_for_large_values ... ok
[INFO] [stdout] test pet_panel_draw_order_keeps_pet_above_habitat_props ... ok
[INFO] [stdout] test shutdown_drops_worker_thread_cleanly ... ok
[INFO] [stdout] test small_height_degrades_without_text_overlap ... ok
[INFO] [stdout] test pet_renderer_roles_reach_tui_cells ... ok
[INFO] [stdout] test evolution_overlay_copy_avoids_dev_jargon ... ok
[INFO] [stdout] test blocked_provider_state_renders_calm_setup_view ... ok
[INFO] [stdout] test help_evolution_and_hatch_overlays_use_tokenpet_surface_and_accent ... ok
[INFO] [stdout] test event_log_uses_timestamps_rails_sparkline_and_semantic_colors ... ok
[INFO] [stdout] test pet_panel_renders_habitat_props_behind_pet_art ... ok
[INFO] [stdout] test repeat_key_events_drive_watch_controls_and_release_events_do_not ... ok
[INFO] [stdout] test wide_frame_height_grows_on_tall_terminals ... ok
[INFO] [stdout] test render_watch_frame_honors_explicit_color_capability ... ok
[INFO] [stdout] test watch_layout_no_longer_contains_manual_render_wide_or_pet_panel_rect ... ok
[INFO] [stdout] test render_does_not_panic_at_tiny_sizes ... ok
[INFO] [stdout] test wide_layout_has_tokenpet_chrome_panels_and_bars ... ok
[INFO] [stdout] test wide_layout_preserves_asymmetric_pet_hero_policy ... ok
[INFO] [stdout] test watch_compact_72x24_panels_in_order ... ok
[INFO] [stdout] test token_metrics_never_render_negative_zero ... ok
[INFO] [stdout] test wide_layout_every_row_fills_full_terminal_width ... ok
[INFO] [stdout] test source_health_rows_render_ready_and_diagnostic_states_together ... ok
[INFO] [stdout] test wide_layout_outer_frame_uses_rounded_box_drawing ... ok
[INFO] [stdout] test wide_layout_uses_tokenpet_metadata_today_grid_and_log_rhythm ... ok
[INFO] [stdout] test wide_layout_pet_art_stays_inside_full_width_panel ... ok
[INFO] [stdout] test wide_layout_centers_full_pet_stage_with_dashed_divider ... ok
[INFO] [stdout] test watch_wide_180x50_left_column_still_full ... ok
[INFO] [stdout] test xp_display_caps_at_max_when_xp_overshoots_target ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/usage_provider.rs (/opt/rustwide/target/debug/deps/usage_provider-0832dfd261246229)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test helper_discovery_prefers_env_then_path_without_reading_real_logs ... ok
[INFO] [stdout] test missing_helpers_return_diagnostics_without_delta ... ok
[INFO] [stdout] test missing_node_for_javascript_helper_returns_diagnostic_without_delta ... ok
[INFO] [stdout] test helper_failure_returns_diagnostic_without_delta ... ok
[INFO] [stdout] test provider_deltas_carry_raw_token_bucket_detail ... ok
[INFO] [stdout] test provider_normalizes_claude_and_codex_records ... ok
[INFO] [stdout] test helper_version_change_does_not_create_new_food_for_same_totals ... ok
[INFO] [stdout] test decreasing_totals_emit_sanitized_diagnostic_without_negative_delta ... ok
[INFO] [stdout] test ccusage_v20_uses_the_claude_scoped_subcommand ... ok
[INFO] [stdout] test poll_with_increased_same_day_total_emits_only_increment ... ok
[INFO] [stdout] test legacy_cursor_with_parser_version_migrates_without_double_feeding ... ok
[INFO] [stdout] test invalid_json_and_helper_stderr_are_sanitized ... ok
[INFO] [stdout] test transcript_like_fields_are_ignored ... ok
[INFO] [stdout] test provider_uses_configured_cache_read_weight_for_real_deltas ... ok
[INFO] [stdout] test repeated_poll_does_not_double_count_unchanged_totals ... ok
[INFO] [stderr]      Running tests/watch_integration.rs (/opt/rustwide/target/debug/deps/watch_integration-9905c5613b107f0c)
[INFO] [stdout] test snapshot_for_calibration_returns_daily_usage_without_inserting_events ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test watch_view_model_exposes_catalog_backed_habitat_props ... ok
[INFO] [stdout] test blocked_source_surfaces_via_source_health ... ok
[INFO] [stdout] test latest_evolution_renders_once_for_running_watch ... ok
[INFO] [stdout] test bio_view_renders_from_real_pet_state ... ok
[INFO] [stdout] test watch_view_model_uses_rendered_mech_pet_art_instead_of_fixture_cat ... ok
[INFO] [stdout] test watch_totals_use_observed_and_bucket_time_not_source_period_midnight ... ok
[INFO] [stdout] test mixed_provider_health_keeps_ready_source_and_diagnostic_source_visible ... ok
[INFO] [stdout] test watch_view_model_uses_usage_store_totals_and_diagnostics_instead_of_fixture_activity ... ok
[INFO] [stdout] test diagnostic_log_dedupes_by_surface_and_code ... ok
[INFO] [stdout] test log_aggregates_smeared_buckets_into_one_event ... ok
[INFO] [stderr]    Doc-tests glorp
[INFO] [stdout] test rate_per_hour_grows_with_more_recent_events ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "199701bafc7db3f2960ed41c17d83e2d5fb420312a46b6c25c140485caa6c836", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "199701bafc7db3f2960ed41c17d83e2d5fb420312a46b6c25c140485caa6c836", kill_on_drop: false }`
[INFO] [stdout] 199701bafc7db3f2960ed41c17d83e2d5fb420312a46b6c25c140485caa6c836
